The present invention relates to the field of mass storage devices. More particularly, this invention relates to an apparatus and method for mapping defective sectors on disc surfaces within a disc drive.
One key component of any computer system is a device to store data. Computer systems have many different places where data can be stored. One common place for storing massive amounts of data in a computer system is on a disc drive. The most basic parts of a disc drive are an information storage disc that is rotated, an actuator that moves a transducer to various locations over the disc, and electrical circuitry that is used to write and read data to and from the disc. The disc drive also includes circuitry for encoding data so that it can be successfully retrieved and written to the disc surface. A microprocessor controls most of the operations of the disc drive as well as passing the data back to the requesting computer and taking data from a requesting computer for storing to the disc.
The transducer is typically placed on a small ceramic block, also referred to as a slider, that is aerodynamically designed so that it flies over the disc. The slider is passed over the disc in a transducing relationship with the disc. Most sliders have an air-bearing surface (xe2x80x9cABSxe2x80x9d which includes rails and a cavity between the rails. When the disc rotates, air is dragged between the rails and the disc surface causing pressure, which forces the head away from the disc. At the same time, the air rushing past the cavity or depression in the air bearing surface produces a negative pressure area. The negative pressure or suction counteracts the pressure produced at the rails. The slider is also attached to a load spring which produces a force on the slider directed toward the disc surface. The various forces equilibrate so the slider flies over the surface of the disc at a particular desired fly height. The fly height is the distance between the disc surface and the transducing head, which is typically the thickness of the air lubrication film. This film eliminates the friction and resulting wear that would occur if the transducing head and disc were in mechanical contact during disc rotation. In some disc drives, the slider passes through a layer of lubricant rather than flying over the surface of the disc.
Information representative of data is stored on the surface of the storage disc. Disc drive systems read and write information stored on tracks on storage discs. Transducers, in the form of read/write heads attached to the sliders, located on both sides of the storage disc, read and write information on the storage discs when the transducers are accurately positioned over one of the designated tracks on the surface of the storage disc. The transducer is also said to be moved to a target track. As the storage disc spins and the read/write head is accurately positioned above a target track, the read/write head can store data onto a track by writing information representative of data onto the storage disc. Similarly, reading data on a storage disc is accomplished by positioning the read/write head above a target track and reading the stored material on the storage disc. To write on or read from different tracks, the read/write head is moved radially across the tracks to a selected target track.
Each track on a disc surface in a disc drive is further divided into a number of short arcs called sectors. The sector typically holds 512 bytes of information representing data. The number of sectors on a track used to be fixed wherever the track was located on the disc surface. Now, the number of sectors held on a track varies depending on the zone which the track is in. Typically, more sectors will be stored on the tracks at the outer diameter which are in the zone toward the outer diameter of the disc.
When a disc is manufactured, there is a possibility that there may be defects on the disc. The defects typically can result in sectors or tracks that have doubtful, dangerous, or damaged magnetic media, which would otherwise put the customer""s data at risk. These defects are to be avoided so that information representative of data is not written to a location where the data could be lost. Typically, each disc surface is checked for defects at the time of manufacture. A sector is considered defective if a number of retries must be used to recover the data on the sector. A sector is also considered defective if data written to the sector is not recoverable. Any defective sectors found are kept in memory on a table or map which is unavailable to end users. This table or map is used to reallocate sectors or remap the sectors on the disc drive.
Not all defective sectors are found at the time of manufacture. Defects found after the time of manufacture are sometimes termed as grown defects. There are many sources for grown defective sectors. For example, sometimes a defective sector can be found after an inadvertent contact between the slider. Again, the location of the defective sector or track is stored in memory so that the defective sector is not reused.
There are two basic schemes for handling defects found at the time of manufacture. One scheme is to provide spare sectors either on the track, within the cylinder or at the inner diameter of the disc. Another scheme is called defect slipping. Defect slipping skips over defective sectors and keeps the locations of the defects in a large table. The sectors on the drive are sequentially numbered as logical block addresses. The large table maps each logical block address to a physical location on the disc surface.
In the spare sector scheme, spare sectors could be provided on a track or within a cylinder. A cylinder is a group of tracks from different disc surfaces located at substantially the same radial distance from the center of the disc. If a defective sector was located, the location of the defect was stored in memory and the spare sector on the track or within the cylinder was located and the information representing the data was written to the spare sector. In other instances, the spare sector was not kept on the track or in the cylinder but was kept elsewhere on the surface or surfaces of the disc drive. In this scheme, a pool of spare sectors was kept off track or outside of the cylinder.
In each of these schemes, if a spare is used, the access time of the disc drive suffered. A constant industry goal is to reduce the access time to data on the disc drive. When a spare sector was used, and the spare is located on the track, the disc generally has to undergo an additional revolution to get to the spare sector, read the spare sector and then return to the point after the defective sector. If the spare is within the cylinder, many times an extra revolution was required. If these spares are not used, then the disc drive wastes potentially usable capacity. Placing spare sectors in a pool off track or outside of the cylinder balances capacity and access time. In such a drive, defective sectors are few. However, in the event of encountering a defective sector, the access time is longer than the access times associated with storing the spare within the cylinder or on the track since several seeks must be done to get to the spare sector and then back to the track from which the transducer head is reading or writing. If the spare sectors are kept at a location very far from the tracks being read, the actuator movements associated with the various seeks will increase the access time to the data dramatically.
Another method is referred to as slipping the defects. In essence, when a defective sector is found, the defective sector is skipped and the next sector available is the next sector. This cuts down on the seeks necessary to obtain the information. One of the problems associated with this method is that it requires a large buffer for storing tables necessary to map the logical block address to the actual location. The actual location is sometimes referred to as the cylinder-head-sector (CHS) address. For example, in a disc drive that has a capacity of 40 gigabytes (GB), if 1 spare sector is allocated per megabyte (MB) then there are 40,000 spare sectors allocated. Storing the locations of slipped sectors requires approximately 8 bytes of information. This requires a buffer having a size of 312 kilobytes (KB) which is determined by multiplying (40,000 spare sectors)xc3x97(8 bytes per sector). Buffer storage is expensive and therefore there is a need to keep the amount of storage to a minimum. Furthermore, buffer storage is typically used on operations to speed access times. For example, buffer storage is used to temporarily store tracks or sectors near sectors being read since many times the next request for data comes from a nearby sector. If data is stored within the buffer, the data can be accessed much more quickly from the buffer thereby dramatically improving the access time to the data. Thus, freeing up buffer memory is also advantageous since more of the buffer memory can be used to store adjacent data or do some other operation for speeding up the disc drive.
What is needed is a method and apparatus for dealing with defective sectors that reduces access times and also reduces the amount of buffer needed to store tables necessary for mapping logical block addresses to the actual location on the disc or discs of the disc drive. What is also needed is method and apparatus that accurately remaps the logical block addresses to the physical location on the disc drive.
A method for mapping logical block addresses to actual location on a disc drive includes dividing a logical block address by a number of sectors within a cylinder to estimate a starting cylinder location for the selected logical block address, and determining a number of skipped defective sectors that have occurred prior to a cylinder start. The method also includes adding the number of defective sectors skipped prior to the cylinder start to a beginning sector location of the cylinder. The starting cylinder also may be adjusted by a number of cylinders skipped prior to the estimated start cylinder. The number of cylinders skipped is stored in a cylinder skip table. The cylinder skip table stores the number of cylinders skipped prior to a cylinder.
Once the cylinder is determined, the head to seek to is estimated by subtracting the number of sectors skipped prior to the location of the cylinder start and a number of sectors in the cylinders prior to the cylinder start from the logical block address to determine a quantity. The quantity is divided by a number of sectors within a track associated with the cylinder to estimate a track location for the logical block address. A seek is performed to the head associated with the estimated track location. After the track location and head associated with the estimated track location is seeked to, the number of sectors skipped within the cylinder prior to the estimated track location is determined. The number of sectors skipped within the cylinder prior to the estimated track is added to the beginning sector within the track to determine the physical location of the logical block address. The number of sectors skipped within the cylinder prior to the estimated track is determined by storing the number of sectors skipped within the cylinder prior to the beginning of the track in a track identification field at the track. Reading the track identification field produces the number of sectors skipped. If the number of sectors that must be added to a beginning track location to adjust for skipped sectors pushes the logical block address to a physical address associated with another track then a seek to another track within the cylinder is performed to locate the logical block address. The number of skipped sectors on a track and a location of the sectors skipped on a particular track may also be stored in a track identification field on a track.
Using a cylinder skip table and storing information regarding the number of sectors skipped within the cylinder prior to the track start and also regarding the location and number of sectors skipped on the track, allows for mapping logical block addresses to actual physical locations on the disc with a buffer having a much reduced size than previously needed to store tables necessary for mapping logical block addresses to the actual location on the disc or discs of the disc drive.
A disc within a disc drive has a plurality of tracks with a track identification field associated with each of the plurality of tracks. The track identification field includes information regarding the number and position of defective sectors on the track. The track identification field may also include information regarding the number of defective sectors skipped within a cylinder prior to the start of the track.
Advantageously, the disc drive which uses the above inventions needs a buffer memory which is smaller than used in other remapping schemes. The reduced buffer memory results in a less costly disc drive or frees buffer memory for other uses.